Constructor একটি বিশেষ ধরনের মেথড যা একটি ক্লাসের নতুন অবজেক্ট তৈরি করার সময় স্বয়ংক্রিয়ভাবে কল হয়। এটি সাধারণত অবজেক্টের প্রাথমিক অবস্থা সেট করার জন্য ব্যবহৃত হয়। Java তে দুটি ধরনের কনস্ট্রাক্টর থাকে:
- Default Constructor: যখন কোন কনস্ট্রাক্টর ব্যবহারকারীর দ্বারা নির্দিষ্ট করা হয় না, তখন Java স্বয়ংক্রিয়ভাবে একটি ডিফল্ট কনস্ট্রাক্টর তৈরি করে। এটি কোন প্যারামিটার নেয় না এবং এটি সাধারণত ফিল্ড বা ভেরিয়েবলের ডিফল্ট মান সেট করে।
- Parameterized Constructor: এটি এমন একটি কনস্ট্রাক্টর যা প্যারামিটার নেয় এবং অবজেক্ট তৈরি করার সময় প্যারামিটারগুলির মান সেট করার সুযোগ প্রদান করে।
Default Constructor এবং Parameterized Constructor এর উদাহরণ:
1. Default Constructor Example
class Car {
String model;
int year;
// Default Constructor
public Car() {
model = "Unknown";
year = 2020;
}
public void display() {
System.out.println("Model: " + model);
System.out.println("Year: " + year);
}
}
public class DefaultConstructorExample {
public static void main(String[] args) {
// Creating an object using the default constructor
Car myCar = new Car();
myCar.display();
}
}
Explanation:
- Default Constructor:
public Car()এই কনস্ট্রাক্টরটি প্যারামিটার ছাড়া কনস্ট্রাক্টর এবং এটি ফিল্ডmodelএবংyearএর ডিফল্ট মান সেট করে। model = "Unknown"এবংyear = 2020দিয়ে ডিফল্ট মান দেওয়া হয়েছে।
Output:
Model: Unknown
Year: 2020
2. Parameterized Constructor Example
class Car {
String model;
int year;
// Parameterized Constructor
public Car(String model, int year) {
this.model = model;
this.year = year;
}
public void display() {
System.out.println("Model: " + model);
System.out.println("Year: " + year);
}
}
public class ParameterizedConstructorExample {
public static void main(String[] args) {
// Creating an object using the parameterized constructor
Car myCar = new Car("Toyota Corolla", 2022);
myCar.display();
// Another object with different values
Car anotherCar = new Car("Honda Civic", 2021);
anotherCar.display();
}
}
Explanation:
- Parameterized Constructor:
public Car(String model, int year)এই কনস্ট্রাক্টরটি দুটি প্যারামিটার নেয় (মডেল এবং বছর) এবং অবজেক্ট তৈরির সময় এই মানগুলি সেট করে। this.modelএবংthis.year: এই কনস্ট্রাক্টরের মধ্যেthisকিওয়ার্ড ব্যবহার করে বর্তমান অবজেক্টের ফিল্ডের মান সেট করা হয়েছে।
Output:
Model: Toyota Corolla
Year: 2022
Model: Honda Civic
Year: 2021
Constructor Overloading Example
Java তে আপনি Constructor Overloading করতে পারেন, যেখানে একাধিক কনস্ট্রাক্টর একই ক্লাসে থাকে কিন্তু তাদের প্যারামিটার সংখ্যা বা টাইপ ভিন্ন হয়।
class Car {
String model;
int year;
// Default Constructor
public Car() {
model = "Unknown";
year = 2020;
}
// Parameterized Constructor
public Car(String model, int year) {
this.model = model;
this.year = year;
}
public void display() {
System.out.println("Model: " + model);
System.out.println("Year: " + year);
}
}
public class ConstructorOverloadingExample {
public static void main(String[] args) {
// Calling the default constructor
Car myCar1 = new Car();
myCar1.display();
// Calling the parameterized constructor
Car myCar2 = new Car("BMW X5", 2023);
myCar2.display();
}
}
Explanation:
- এখানে দুটি কনস্ট্রাক্টর রয়েছে: একটি default constructor এবং একটি parameterized constructor। আপনি যখন কনস্ট্রাক্টরের মধ্যে একাধিক কনস্ট্রাক্টর তৈরি করেন, তখন Java স্বয়ংক্রিয়ভাবে সঠিক কনস্ট্রাক্টর নির্বাচন করে।
Output:
Model: Unknown
Year: 2020
Model: BMW X5
Year: 2023
Key Points:
- Default Constructor: কোন প্যারামিটার ছাড়াই একটি কনস্ট্রাক্টর যা অবজেক্টের ফিল্ডগুলির জন্য ডিফল্ট মান প্রদান করে।
- Parameterized Constructor: এটি এক বা একাধিক প্যারামিটার নিয়ে অবজেক্ট তৈরি করার সময় ফিল্ডগুলির মান সেট করে।
- Constructor Overloading: একাধিক কনস্ট্রাক্টর একই ক্লাসে থাকে, তবে তাদের প্যারামিটার সংখ্যা বা টাইপ আলাদা থাকে।
Java তে কনস্ট্রাক্টর দুটি প্রধানভাবে ব্যবহৃত হয়: Default Constructor এবং Parameterized Constructor। প্রথমটি অবজেক্ট তৈরি করার সময় ডিফল্ট মান প্রদান করে, এবং দ্বিতীয়টি আপনার প্রদত্ত মান অনুযায়ী অবজেক্ট তৈরি করে। Constructor Overloading এর মাধ্যমে একাধিক কনস্ট্রাক্টর ব্যবহার করা সম্ভব, যাতে আপনি বিভিন্ন ধরনের অবজেক্ট ইনিশিয়ালাইজ করতে পারেন।
Read more